package com.microservice.common.annotation;

import java.lang.annotation.*;

/**
 * 权限注解 - 用于标记需要特定权限才能访问的方法或类
 * 
 * 使用示例：
 * @RequirePermission("user:read")
 * @RequirePermission({"user:read", "user:update"})
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequirePermission {
    /**
     * 需要的权限编码
     */
    String[] value();
    
    /**
     * 权限关系：AND-需要所有权限，OR-需要任一权限
     */
    Logical logical() default Logical.AND;
    
    enum Logical {
        /** 需要所有权限 */
        AND,
        /** 需要任一权限 */
        OR
    }
}
